﻿using System;
using System.Collections.Generic;
using System.Text;
using T.FAS.Runtime.Metadata.Entity;

namespace T.FAS.Runtime.DataAccess.SPI
{
    public interface IDeleteService<T> : IDataAccessAtion where T : class
    {
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <remarks>按主键数据作为查询依据</remarks>
        /// <param name="medaData">领域模型</param>        
        /// <param name="dataID">主键数据</param>               
        void DeleteByID(T medaData, string dataID, Dictionary<string, object> exrParams = null);


        /// <summary>
        /// 批量删除数据
        /// </summary>
        /// <remarks>按主键数据作为查询依据</remarks>
        /// <param name="medaData">领域模型</param>        
        /// <param name="dataIDs">主键数据列表</param>               
        void DeleteByIDList(T medaData, IEnumerable<string> dataIDs, Dictionary<string, object> exrParams = null);

        /// <summary>
        /// 批量删除数据
        /// </summary>
        /// <remarks>按主键数据作为查询依据</remarks>
        /// <param name="medaData">领域模型</param>  
        /// <param name="cnoId">领域对象</param>
        /// <param name="dataIDs">主键数据列表</param>               
        void DeleteByID(T medaData, string cnoId, string dataID, Dictionary<string, object> exrParams = null);


        /// <summary>
        /// 批量删除数据
        /// </summary>
        /// <remarks>按主键数据作为查询依据</remarks>
        /// <param name="medaData">领域模型</param>  
        /// <param name="cnoId">领域对象</param>
        /// <param name="dataIDs">主键数据列表</param>               
        void DeleteByIDList(T medaData, string cnoId, IEnumerable<string> dataIDs, Dictionary<string, object> exrParams = null);
    }
}
